// // using System.Net;
// using System;
// using System.Linq;
// using Renci.SshNet;
// using UMC.Web;
// using UMC.Web.UI;

// namespace UMC.Proxy.Activities;


// [UMC.Web.Mapping("Proxy", "SSH", Auth = WebAuthType.User)]
// public class SiteSSHActivities : Web.WebActivity
// {

//     public override void ProcessActivity(WebRequest request, WebResponse response)
//     {
//         var Key = this.AsyncDialog("Key", g =>
//         {
//             var form = request.SendValues ?? new WebMeta();
//             var limit = form["limit"] ?? "none";
//             switch (limit)
//             {
//                 case "PC":
//                     {
//                         var sts = new System.Data.DataTable();
//                         sts.Columns.Add("ip");
//                         sts.Columns.Add("caption");
//                         sts.Columns.Add("user");
//                         sts.Columns.Add("port");
//                         sts.Columns.Add("type");
//                         var ds = DataFactory.Instance().Devices();

//                         var Keyword = form["Keyword"];
//                         if (String.IsNullOrEmpty(Keyword) == false)
//                         {

//                             ds = ds.Where(r => r.Caption.Contains(Keyword) || r.IP.Contains(Keyword)).OrderBy(r => r.Caption).ToArray();
//                             // }
//                             // else
//                             // {

//                             //     ds = ds.Where(r => r.Flag != -1).OrderBy(r => r.Caption).ToArray();
//                         }
//                         foreach (var d in ds)
//                         {
//                             sts.Rows.Add(d.IP, d.Caption, d.Username, d.Port, d.Port, d.Type);

//                         }

//                         var rdata = new WebMeta().Put("data", sts);
//                         response.Redirect(request.IsMaster ? rdata.Put("IsMaster", true) : rdata);
//                     }
//                     break;
//                 default:
//                     {
//                         var title = UITitle.Create();

//                         title.Title = "设备资源";

//                         var ds = DataFactory.Instance().Devices();

//                         var Keyword = form["Keyword"];
//                         if (String.IsNullOrEmpty(Keyword) == false)
//                         {

//                             ds = ds.Where(r => r.Caption.Contains(Keyword) || r.IP.Contains(Keyword)).OrderBy(r => r.Caption).ToArray();
//                         }

//                         var ui = UISection.Create(new UIHeader().Search("搜索"), title);
//                         var webr = UMC.Data.WebResource.Instance();

//                         foreach (var d in ds)
//                         {
//                             var item = new UIIconNameDesc.Item('\uf17c', d.Caption, d.IP);

//                             UIIconNameDesc uIIcon = new UIIconNameDesc(item);//
//                                                                              // var cell = new UIIconNameDesc();//new UIImageTextValue(webr.ImageResolve(d.Type, "1", 4), d.Caption, d.IP);
//                                                                              // uIIcon.Button("打开", new UIClick(new WebMeta().Put(g, d.IP)).Post(request.Model, request.Command), 0x1890ff);
//                             item.Click(new UIClick(new WebMeta().Put(g, d.IP)).Post(request.Model, request.Command));
//                             // cell.Style.Name("image-width", 72);
//                             // cell.Style.Name("image-radius", 10);
//                             ui.Add(uIIcon);
//                         }
//                         if (ds.Length == 0)
//                         {
//                             if (String.IsNullOrEmpty(Keyword))
//                             {
//                                 var desc = new UIDesc("未有设备资源");
//                                 desc.Put("icon", "\uf016").Format("desc", "{icon}\n{desc}");
//                                 desc.Style.Align(1).Color(0xaaa).Padding(20, 20).BgColor(0xfff).Size(12).Name("icon", new UIStyle().Font("wdk").Size(60));
//                                 ui.Add(desc);
//                             }
//                             else
//                             {
//                                 var desc = new UIDesc($"未搜索到“{Keyword}”相关设备资源");
//                                 desc.Put("icon", "\uf016").Format("desc", "{icon}\n{desc}");
//                                 desc.Style.Align(1).Color(0xaaa).Padding(20, 20).BgColor(0xfff).Size(12).Name("icon", new UIStyle().Font("wdk").Size(60));
//                                 ui.Add(desc);
//                             }
//                         }
//                         if (request.IsMaster)
//                         {
//                             ui.UIFootBar = new UIFootBar() { IsFixed = true };
//                             ui.UIFootBar.AddText(new UIEventText("网关服务").Click(new UIClick().Post(request.Model, "Server")),
//                              new UIEventText("添加新设置").Click(new UIClick(new WebMeta(request.Arguments).Put(g, "Create")).Post(request.Model, request.Command)).Style(new UIStyle().BgColor()));
//                         }
//                         ui.SendTo(this.Context, true, $"{request.Model}.{request.Command}");
//                     }
//                     break;
//             }


//             return this.DialogValue("none");
//         });
//         switch (Key)
//         {
//             case "Create":
//                 Create();
//                 break;
//                 // return Data.HotCache.Cache<SiteDevice>().Find(new Entities.SiteDevice(), 0, out index);
//         }
//         var device = UMC.Data.HotCache.Get(new Entities.SiteDevice { IP = Key });
//     }
//     void Create()
//     {

//         var config = this.AsyncDialog("Settings", g =>
//         {
//             var from = new Web.UIFormDialog() { Title = "添加资源" };

//             from.Title = "添加Linux资源";
//             from.AddText("描述", "Caption", String.Empty);
//             from.AddText("IP", "IP", String.Empty);
//             from.AddText("端口", "Port", "22");
//             from.AddText("用户名", "Username", String.Empty);
//             from.AddPassword("密码", "Password", String.Empty);
//             // from.AddCheckBox("", "AuthConf", "none").Put("支持目录浏览", "*", true);
//             from.Submit("确认添加", $"{this.Context.Request.Model}.{this.Context.Request.Command}");
//             return from;
//         });
//         // Renci.SshNet.PrivateKeyAuthenticationMethod

//         var ssh = new SshClient(config["IP"], Utility.IntParse(config["Port"], 22), config["Username"], config["Password"]);
//         try
//         {
//             ssh.Connect();
//             ssh.Disconnect();
//             var device = new Entities.SiteDevice { IP = config["IP"], Port = Utility.IntParse(config["Port"], 22), Username = config["Username"], Caption = config["Caption"] };
//             UMC.Data.HotCache.Put(device);
//             UMC.Data.DataFactory.Instance().Password(new Guid(Utility.MD5(config["IP"], config["Username"])), config["Password"]);
//             this.Prompt("添加成功", false);
//             this.Context.Send($"{this.Context.Request.Model}.{this.Context.Request.Command}", false);

//         }
//         catch (Exception ex)
//         {
//             this.Prompt("异常", ex.Message);
//         }
//         // if (config.ContainsKey("API"))
//         // {
//         //     var Combo = config["Combo"];
//         //     var src = config["API"];
//         //     this.Context.Response.Redirect(new Uri($"{src}&Combo={Combo}&Code={ConfKey}"));
//         // }
//         // var from = new Web.UIFormDialog() { Title = "发布新应用" };
//     }
// }
